如何使用正则表达式从单词中删除某些特殊字符?

时间:2019-01-25 07:52:16

标签: regex

我正在用文字分割文件。我可以将其拆分为单词,但是在某些单词中有一个特殊字符,例如“ ___”。我想跳过该特殊字符,并且还要将该单词与该特殊字符分开。

包含此类数据的文件

Yahoo$$$Yahoo OK : ___GET
Gmail$$$Gmail Ok:___GET
google_data$$$Google.com.in___POST

使用((?!:)[。0-9a-zA-Z \ s] \ w +)+给我

Yahoo
Yahoo OK
 ___GET
Gmail
Gmail Ok
GET
google_data
Google.com.in___POST

我不要那个'___'和下面的字符串:

Google.com.in___POST

必须分为两个词,例如:

Google.com.in
POST

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

使用\w也会与下划线匹配。查看示例数据,您想要匹配字符a-z或数字,并且在两者之间可以有空格,点或下划线。

您可以匹配以下值,而不是拆分:

[0-9a-zA-Z]+(?:[._ ][0-9a-zA-Z]+)*

说明

  • [0-9a-zA-Z]+匹配数字或a-z小写或大写1次以上
  • (?:非插入组
    • [._ ]匹配一个。 _或空格
    • [0-9a-zA-Z]+匹配数字或a-z小写或大写1次以上
  • )*关闭捕获组并重复0次以上

Regex demo