regex - 正则表达式 : How to find dashes between words

在 PCRE 中如何找到单词之间的破折号

例如

First-file-111-222.txt
This-is-the-second-file-123-456.txt
And-the-last-one-66-77.txt

因此,First 和 File 之间的破折号(等等)

然后我可以用空格替换它们。

使用 ([^a-zA-Z]\d(.+)) 我可以选择最后一部分(破折号+nbrs)但我不知道如何标记其他破折号.

== 编辑 这个想法是使用重命名工具(支持正则表达式)——重命名会导致

第一个文件-111-222.txt
这是第二个文件-123-456.txt
还有最后一个-66-77.txt

因此,- 在最后一个单词之后和数字之间要保留到位。 只有单词之间的那些被替换。

最佳答案

如果我没有遗漏任何以下正则表达式应该适合你:

(?<=\D)-(?=\D)

它只是意味着找到一个连字符字符,如果它在 2 个非数字字符之间。

现场演示:http://www.rubular.com/r/O2XUNaB02R

https://stackoverflow.com/questions/16880550/

相关文章:

javascript - 类型错误:无法设置未定义的属性 'onkeydown'

syntax - 初学者的 Entity Framework 语法

usb - 通过 USB 线的模拟信号

version-control - P4 货架 : What is actually saved?

text - 用负值归一化向量

emacs - 在 Emacs 初始化文件中添加一个 TeX 符号

.htaccess - 500 内部服务器错误而不是 404

php - xdebug.remote_enable 的 ini_set 不起作用

c# - LINQ: "Types in Union or Concat are construct

r - 对固定大小的 block 进行简单平均