みたいな台詞があります
「すべてが私の周りで変化している、素晴らしいもの+、tthingxx」
そして、その単語の末尾に ***thing を含むすべての単語、または「+」、「h」、または「x」などの「thing」の後の最大で別の文字を含むすべての単語を変更したい...
何かのようなもの
string = 'everything is changing around me, wonderful thing+, tthingxx'
regex = new RegExp('thing(\\+|[g-z])$','g');
string = string.replace(regex, '<b>thing$1</b>');
私は何をしたいですか?すべてが私の周りで変化しています、素晴らしいこと+、tthingxx
私の正規表現の結果?何かが機能しています... $ を削除すると、「もの」と少なくとも別の文字を含むすべての単語が一致します。
すべてが私の周りで変化している、素晴らしいこと+、tthingx x
私はすべてを試しましたが、第一に、技術的な英語があまりよく理解できず、第二に、答えが見つかりませんでした.
私がしなければならないこと???前もって感謝します
私が見つけた解決策は、この正規表現を使用することでした
/thing([+g-z]){0,1}\b/g
またはRegExpを使用します(変数を渡す必要があるため、必要です):
myvar = 'thing';
regex = new RegExp(myvar + "([+g-z]){0,1}\\b" , "g");
2 番目のモードで正規表現を実行するときにエスケープ \ がありませんでした。しかし、これでは十分ではありません: + が< b >の外に出てしまい、その理由がよくわかりません!!!
私が望むように機能するソリューションは、@Qtaxによるものです:
/thing([+g-z])?(?!\w)/g
コミュニティに感謝します!