Php 在破折号后选择单词,不要在单词后选择任何内容
假设我有两个这样的文件Php 在破折号后选择单词,不要在单词后选择任何内容,php,regex,Php,Regex,假设我有两个这样的文件 font-normal.otf font-bold.ttf etc 我想选择破折号后面的单词,也就是“正常”,就这样。不是。orf。我怎样才能做到 我有这个,但它也选择了.otf部分 [^-]+$ 正则表达式的问题是,[^-]+匹配所有内容(连字符除外),直到行尾,而您只希望从-匹配到 使用以下正则表达式: /^.*?([^-]+)\..*$/m 说明: ^-在行首断言位置 *?-匹配除换行符以外的任何字符(延迟) ([^-]+)-再匹配(并捕获)一个非连字符 \
font-normal.otf
font-bold.ttf
etc
我想选择破折号后面的单词,也就是“正常”,就这样。不是。orf。我怎样才能做到
我有这个,但它也选择了.otf部分
[^-]+$
正则表达式的问题是,
[^-]+
匹配所有内容(连字符除外),直到行尾,而您只希望从-
匹配到
使用以下正则表达式:
/^.*?([^-]+)\..*$/m
说明:
-在行首断言位置^
-匹配除换行符以外的任何字符(延迟)*?
-再匹配(并捕获)一个非连字符([^-]+)
-匹配文字点字符(\。
)
-匹配所有其他内容,直到行尾(贪婪地)*
-在行尾断言位置$
-多行修饰符(使m
和^
在每行的开始和结束处匹配)$
数组
(
[0]=>正常
[1] =>粗体
)
正则表达式的问题是,
[^-]+
匹配所有内容(连字符除外),直到行尾,而您只希望从-
匹配到
使用以下正则表达式:
/^.*?([^-]+)\..*$/m
说明:
-在行首断言位置^
-匹配除换行符以外的任何字符(延迟)*?
-再匹配(并捕获)一个非连字符([^-]+)
-匹配文字点字符(\。
)
-匹配所有其他内容,直到行尾(贪婪地)*
-在行尾断言位置$
-多行修饰符(使m
和^
在每行的开始和结束处匹配)$
数组
(
[0]=>正常
[1] =>粗体
)
正则表达式的问题是,
[^-]+
匹配所有内容(连字符除外),直到行尾,而您只希望从-
匹配到
使用以下正则表达式:
/^.*?([^-]+)\..*$/m
说明:
-在行首断言位置^
-匹配除换行符以外的任何字符(延迟)*?
-再匹配(并捕获)一个非连字符([^-]+)
-匹配文字点字符(\。
)
-匹配所有其他内容,直到行尾(贪婪地)*
-在行尾断言位置$
-多行修饰符(使m
和^
在每行的开始和结束处匹配)$
数组
(
[0]=>正常
[1] =>粗体
)
正则表达式的问题是,
[^-]+
匹配所有内容(连字符除外),直到行尾,而您只希望从-
匹配到
使用以下正则表达式:
/^.*?([^-]+)\..*$/m
说明:
-在行首断言位置^
-匹配除换行符以外的任何字符(延迟)*?
-再匹配(并捕获)一个非连字符([^-]+)
-匹配文字点字符(\。
)
-匹配所有其他内容,直到行尾(贪婪地)*
-在行尾断言位置$
-多行修饰符(使m
和^
在每行的开始和结束处匹配)$
数组
(
[0]=>正常
[1] =>粗体
)
如果你只是想保持简单,你可以选择
$str = file_get_contents("test.txt"); // your file names in test.txt (or pass them with string if you want...)
$string2 = preg_match_all('/-([\w ]+)/', $str, $matches);
现在,$matches[1]数组包含-和之间的所有字符串。(如果它们只是单词字符;如果您需要数字和其他字符,您只需使用适当的
使用此选项可以从示例中打印“正常”和“粗体”
echo $matches[1][0];
echo $matches[1][1];
如果你只是想保持简单,你可以选择
$str = file_get_contents("test.txt"); // your file names in test.txt (or pass them with string if you want...)
$string2 = preg_match_all('/-([\w ]+)/', $str, $matches);
现在,$matches[1]数组包含了-到之间的所有字符串。(如果它们只是单词字符;如果需要数字和其他字符,则只需使用适当的\w更改即可。)
使用此选项可以从示例中打印“正常”和“粗体”
echo $matches[1][0];
echo $matches[1][1];
如果你只是想保持简单,你可以选择
$str = file_get_contents("test.txt"); // your file names in test.txt (or pass them with string if you want...)
$string2 = preg_match_all('/-([\w ]+)/', $str, $matches);
现在,$matches[1]数组包含了-到之间的所有字符串。(如果它们只是单词字符;如果需要数字和其他字符,则只需使用适当的\w更改即可。)
使用此选项可以从示例中打印“正常”和“粗体”
echo $matches[1][0];
echo $matches[1][1];
如果你只是想保持简单,你可以选择
$str = file_get_contents("test.txt"); // your file names in test.txt (or pass them with string if you want...)
$string2 = preg_match_all('/-([\w ]+)/', $str, $matches);
现在,$matches[1]数组包含了-到之间的所有字符串。(如果它们只是单词字符;如果需要数字和其他字符,则只需使用适当的\w更改即可。)
使用此选项可以从示例中打印“正常”和“粗体”
echo $matches[1][0];
echo $matches[1][1];
这应该足够简单
-([^.]+)
编辑:
匹配破折号-
捕获组(
任何不是文字点的东西[^.]
贪婪+
关闭捕获组)
-([^.]+)
编辑:
匹配破折号-
捕获组(
任何不是文字点的东西[^.]
贪婪+
关闭捕获组)
- 这应该很简单