在可以包含正斜杠和破折号的行中用逗号替换白色 space
replace white space with commas in lines that can contain forward slashes and dashes
我正在尝试将行中的白色 space 替换为文本,将正斜杠替换为逗号,而不在行尾添加逗号。
我正在使用带有单独查找和替换字符串的文本编辑器。
输入看起来像这样(一些不同的变量):
CATEGORIES:ORION/AKC Collection accounts receivable White Plains
CATEGORIES:ABITIBIBOWATER/NOA1 ENRON/NOA PAPERCO/CL DWA
CATEGORIES:ONSITE FAO
CATEGORIES:LAR-DAN Lar-Dan
结果应该是:
CATEGORIES:ORION/AKC,Collection,accounts,receivable,White,Plains
CATEGORIES:ABITIBIBOWATER/NOA1,ENRON/NOA,PAPERCO/CL,DWA
CATEGORIES:ONSITE,FAO
CATEGORIES:LAR-DAN,Lar-Dan
我试过了:
CATEGORIES:([A-Z|a-z])*
但它只让我得到第一个表达式
CATEGORIES:ORION (in the first example.
从你的例子来看,你似乎没有替换
1.白色space与文本行
2. 带逗号的正斜杠
虽然您期望输出将白色 space 替换为逗号
这可以通过搜索以下模式来实现
(?<=\w)\s(?=\w)
然后简单地用逗号替换它。
这将只搜索被字符包围的白色 space 并忽略末尾跟换行符的 space。
您可以在任何编辑器中执行此操作(在记事本++和vim上试过)
另外,如果你想实现
1.白色space与文本行
2. 带逗号的正斜杠
然后对于 #1,在您的文件中搜索 (?<=\w)\s(?=\w)
并将其替换为您想要的文本。
对于 #2,在您的文件中搜索 \/
并将其替换为 ,
您尝试的正则表达式 CATEGORIES:([A-Z|a-z])*
匹配 CATEGORIES:
后跟一个捕获组重复零次或多次,范围 a-z
和 A-Z
以及 |
因为他们在 character class 中。例如,这也匹配 CATEGORIES:ONSITE||
你可能做的是匹配捕获组中的 CATEGORIES 并使用 \G
进行迭代匹配,你在第二个捕获组中捕获非白色space 字符,然后匹配一个或更多次 space 其中字符串的末尾 $
没有跟随。
(CATEGORIES:|\G(?!^))(\S+)[ ]+(?!$)
并替换为后跟逗号的 2 个捕获组
,
我正在尝试将行中的白色 space 替换为文本,将正斜杠替换为逗号,而不在行尾添加逗号。
我正在使用带有单独查找和替换字符串的文本编辑器。
输入看起来像这样(一些不同的变量):
CATEGORIES:ORION/AKC Collection accounts receivable White Plains
CATEGORIES:ABITIBIBOWATER/NOA1 ENRON/NOA PAPERCO/CL DWA
CATEGORIES:ONSITE FAO
CATEGORIES:LAR-DAN Lar-Dan
结果应该是:
CATEGORIES:ORION/AKC,Collection,accounts,receivable,White,Plains
CATEGORIES:ABITIBIBOWATER/NOA1,ENRON/NOA,PAPERCO/CL,DWA
CATEGORIES:ONSITE,FAO
CATEGORIES:LAR-DAN,Lar-Dan
我试过了:
CATEGORIES:([A-Z|a-z])*
但它只让我得到第一个表达式
CATEGORIES:ORION (in the first example.
从你的例子来看,你似乎没有替换 1.白色space与文本行 2. 带逗号的正斜杠
虽然您期望输出将白色 space 替换为逗号
这可以通过搜索以下模式来实现
(?<=\w)\s(?=\w)
然后简单地用逗号替换它。
这将只搜索被字符包围的白色 space 并忽略末尾跟换行符的 space。
您可以在任何编辑器中执行此操作(在记事本++和vim上试过)
另外,如果你想实现 1.白色space与文本行 2. 带逗号的正斜杠
然后对于 #1,在您的文件中搜索 (?<=\w)\s(?=\w)
并将其替换为您想要的文本。
对于 #2,在您的文件中搜索 \/
并将其替换为 ,
您尝试的正则表达式 CATEGORIES:([A-Z|a-z])*
匹配 CATEGORIES:
后跟一个捕获组重复零次或多次,范围 a-z
和 A-Z
以及 |
因为他们在 character class 中。例如,这也匹配 CATEGORIES:ONSITE||
你可能做的是匹配捕获组中的 CATEGORIES 并使用 \G
进行迭代匹配,你在第二个捕获组中捕获非白色space 字符,然后匹配一个或更多次 space 其中字符串的末尾 $
没有跟随。
(CATEGORIES:|\G(?!^))(\S+)[ ]+(?!$)
并替换为后跟逗号的 2 个捕获组
,