用于删除字符串末尾字符的正则表达式

4
我希望可以递归匹配所有以 :/;, 结尾的文本,并移除这些字符,以及文本结尾留下的任何空格。

例如:

some text :  ;  ,    / 

should become:

some text

我尝试过的方法只能删除找到的这些特殊字符的第一次出现,如何递归地执行此操作,以便删除所有匹配的字符?

我使用的正则表达式:

查找:[ ,;:/]*

替换为无。


4
你知道这可以通过正则表达式来解决,你尝试过查找并删除这些字符吗?请分享你的代码。 - Esko
我尝试过的方法只是删除了找到的这些特殊字符中的第一个。请发布该模式和代码,以查看您遇到的问题。 - Wiktor Stribiżew
你说你使用的正则表达式中没有你想要删除的字符之一...这是你的问题还是打错字了? - Chris
“text”和冒号之间的空格呢?应该删除吗? - Fildor
是的,空格也需要被移除,而且是我的正则表达式中的一个笔误,我需要进行递归替换,这样在一次操作中,所有正则表达式中的字符都应该被移除。 - user9176988
2个回答

9

[ ,;:/]*$应该是你需要的。这与你当前的正则表达式相同,只是在结尾处加上了$$告诉它匹配必须发生在字符串的末尾。


3
您可以使用 C# 的 TrimEnd() 函数,如下所示。
string line = "some text :  ;  ,    / " 
char[] charsToTrim = {',', ':', ';', ' ', '/'};
string trimmedLine = line.TrimEnd(charsToTrim);

1
我正在寻找一个正则表达式的解决方案,我知道要使用哪个函数,谢谢。 - user9176988

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接