如何跳过正则表达式末尾的符号
本文关键字:符号 何跳过 正则表达式 | 更新日期: 2023-09-27 18:28:04
我有下一个正则表达式:
const string pattern = "(''w)</span>";
const string replace = "$1 </span>";
var rgx = new Regex(pattern);
所以,它与所有结束的东西都匹配,并且前面有一个符号。我想让它匹配相同的短语,除了在结尾有标点符号的一次
示例:
Mom</span>, is awesome ....
我不希望它也匹配:
Adventure is the best</span>. So now we keep on doin it ...
我试过了:
const string pattern = "(''w)</span>[^''W]$";
const string pattern = "(''w)</span>(^''W)$";
但它根本不起作用。
我正在寻找的结果:如果有一个短语:
Mom</span>, Dad
作为html文本的一部分,我不想匹配它,因为我不想在逗号前面添加空格->妈妈,爸爸。我想让它留在妈妈,爸爸解析后。
但如果我有:
Mom</span>and Dad (After parsing it comes like : Momand Dad)
我想在"answers"之前加一个空格,这样解析后就可以变成"爸爸妈妈"。
我希望现在你能知道我在做什么!
试试这个:
const string pattern = "(''w)</span>(?![.])";
如果标点符号前面可能有空格,你可以试试这个:
const string pattern = "(''w)</span>(?!'s*[.])";
怎么样:
const string pattern = "(''w)</span>[^,.]";
这[^,.]表示不同于:、或的任何一个字符。
你可以扩展到[^,.;:]或任何其他你需要的东西,也许你可以使用[^,.]一个像*或+这样的量词来指定可能有多个标点符号。
I tried something but i could not get any direct idea. Just sharing some different method.
Have two pattern one with punctuation and another without punctuation
Without punctuation pattern:
const string pattern = "(''w)</span>([^'.',]+)$"; (u replace with space)
Another one with punctuation pattern:
const string pattern = "(''w)</span>[','.''w]+$"; (u replace without space)
In both pattern add the punctuations you want at end eg. ([^':';]+)$