我希望找到一个正则表达式来从字符串中删除数字只有当任何数字之前的字符不是字母或空格时。 例如:
_123
(1234
.12345
?!8
hi 123
?? 1234
将是
_
(
.
?!
hi
??
另一方面:
aaa123
A1234
Z_L12345
..A8
aaa a123
将是:
aaa123
A1234
Z_L12345
..A8
aaa a123
有什么想法吗?
谢谢!
答案 0 :(得分:1)
答案 1 :(得分:1)
答案 2 :(得分:1)
为此使用 lookbehind断言,例如,对于behind of your match case, it can't be "A-Z" or "a-z" or "0-9"
的情况使用外观,然后你应该从这些创建一个集合并将其插入到后面。
这是你的正则表达式
(?<=[^a-zA-Z0-9])\d+
这是你的演示
http://regex101.com/r/dN8sA5/21
然后你应该用NULL
字符串替换它。
修改强> 使用这些方法中的一种
,Trim
你的最终字符串会更好
\s*(?<=[^a-zA-Z0-9])\d+\s*
String.Trim
删除字符串周围的空格。我真的更喜欢第一种方法......
有关look-behind的更多信息,请参阅: