PHP正则表达式:从开始和结束删除所有字符

克里斯托弗2007

目的是\n从字符串中删除所有开头和结尾\n在开始和结束时可以没有任何一个,也可以有多个,而在数量上是独立的。

我考虑过使用preg_replace正则表达式。但是以下测试无效:

$text = "asd\nasd\nasd\nasd\n";
//$text = "\n\nasd\nasd\nasd\nasd\n";
$text = preg_replace('/^(\\n)*(?!\\n)(.*)(?<!\\n)(\\n)*$/', '$2', $text);
var_dump($text);

使用regex101.com,第2组(请参见$2上文)恰好在字符串的中间,没有开始和结束\n

问题:

  1. 我上面的PHP代码有什么问题?为什么不能只用中间部分替换全文?我应该真正删除开始/结束而不是用中间部分替换吗?
  2. 当我使用正则表达式/^(\\n)*(.*)(\\n)*$/而不是上面给出的表达式时,我有什么缺点吗?在上面的正则表达式中,我尝试“以\ n开头-除\ n以外的任何字符-任何想要但不以\ n结尾的字符-以\ n结尾”。在较短的表达式中,我只列出一个,在开头和结尾都没有\ n。但这可能是一个问题,例如,\n在开始/结束时仅其中之一将被替换而某些将不被替换吗?是否可以保证a\n不会成为(.*)中间的一部分?

编辑解决方案

  1. 解决方案:这个基本示例也可以通过PHPtrim函数解决(在我的情况下,这preg_replace是有特殊原因的,因此对我来说,来自ryszard-czech的答案很有效
  2. 注意:字符串$text必须用双引号"而不是单引号,'因为PHP有​​很大的不同!
Ryszard捷克

采用

$text = preg_replace('/^\n+|\n+\z/', '', $text);

说明

--------------------------------------------------------------------------------
  ^                        the beginning of the string
--------------------------------------------------------------------------------
  \n+                      '\n' (newline) (1 or more times (matching
                           the most amount possible))
--------------------------------------------------------------------------------
 |                        OR
--------------------------------------------------------------------------------
  \n+                      '\n' (newline) (1 or more times (matching
                           the most amount possible))
--------------------------------------------------------------------------------
  \z                       the end of the string

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式替换php中开始和结束标记之外的所有内容

来自分类Dev

正则表达式替换php中开始和结束标记之外的所有内容

来自分类Dev

正则表达式,用于删除开始和结束引号之间的空格(PHP)

来自分类Dev

使用 Python 中的正则表达式提取具有开始和结束匹配的字符串文本的所有相关部分

来自分类Dev

正则表达式删除所有字符

来自分类Dev

.Net正则表达式以独有的开始和结束字符串检索子字符串

来自分类Dev

正则表达式通过用运算符(!,&,((),|)拆分所有字符串的开始和结束位置来获取String数组在Java中

来自分类Dev

使用php中的正则表达式删除字符后的所有字符

来自分类Dev

正则表达式-以模式开始和不结束

来自分类Dev

正则表达式-开始和结束模式

来自分类Dev

定义正则表达式的结束和开始

来自分类Dev

Python正则表达式-删除开始和结束并保持中间不变

来自分类Dev

正则表达式删除所有前导和尾随的特殊字符吗?

来自分类Dev

PHP正则表达式-删除所有前导,尾随和独立的连字符

来自分类Dev

正则表达式开始和结束字符(preg_replace)

来自分类Dev

正则表达式以不同的条件开始和结束,但允许使用单个字符

来自分类Dev

Java正则表达式选择字符串中的开始和结束引号

来自分类Dev

正则表达式在开始和结束时排除字符

来自分类Dev

修改正则表达式以匹配开始和结束字符

来自分类Dev

Java正则表达式选择字符串中的开始和结束引号

来自分类Dev

python正则表达式检查字符串中单词的开始和结束

来自分类Dev

正则表达式获取具有特定开始和结束每个组的组块

来自分类Dev

从字符串中删除以char'['开始并以char']'结尾的所有正则表达式实例

来自分类Dev

如果我指定开始和结束而没有开始字符,如何使用正则表达式获取子字符串?

来自分类Dev

如果我指定开始和结束而没有开始字符,如何使用正则表达式获取子字符串?

来自分类Dev

正则表达式匹配以使用angular的表达式开始和结束

来自分类Dev

R-使用正则表达式删除所有字符串,特殊字符和模式结尾元素

来自分类Dev

NOTEPAD ++正则表达式如何删除子字符串和之间的所有字符,

来自分类Dev

正则表达式删除非字母数字字符和点后的所有字符?

Related 相关文章

  1. 1

    正则表达式替换php中开始和结束标记之外的所有内容

  2. 2

    正则表达式替换php中开始和结束标记之外的所有内容

  3. 3

    正则表达式,用于删除开始和结束引号之间的空格(PHP)

  4. 4

    使用 Python 中的正则表达式提取具有开始和结束匹配的字符串文本的所有相关部分

  5. 5

    正则表达式删除所有字符

  6. 6

    .Net正则表达式以独有的开始和结束字符串检索子字符串

  7. 7

    正则表达式通过用运算符(!,&,((),|)拆分所有字符串的开始和结束位置来获取String数组在Java中

  8. 8

    使用php中的正则表达式删除字符后的所有字符

  9. 9

    正则表达式-以模式开始和不结束

  10. 10

    正则表达式-开始和结束模式

  11. 11

    定义正则表达式的结束和开始

  12. 12

    Python正则表达式-删除开始和结束并保持中间不变

  13. 13

    正则表达式删除所有前导和尾随的特殊字符吗?

  14. 14

    PHP正则表达式-删除所有前导,尾随和独立的连字符

  15. 15

    正则表达式开始和结束字符(preg_replace)

  16. 16

    正则表达式以不同的条件开始和结束,但允许使用单个字符

  17. 17

    Java正则表达式选择字符串中的开始和结束引号

  18. 18

    正则表达式在开始和结束时排除字符

  19. 19

    修改正则表达式以匹配开始和结束字符

  20. 20

    Java正则表达式选择字符串中的开始和结束引号

  21. 21

    python正则表达式检查字符串中单词的开始和结束

  22. 22

    正则表达式获取具有特定开始和结束每个组的组块

  23. 23

    从字符串中删除以char'['开始并以char']'结尾的所有正则表达式实例

  24. 24

    如果我指定开始和结束而没有开始字符,如何使用正则表达式获取子字符串?

  25. 25

    如果我指定开始和结束而没有开始字符,如何使用正则表达式获取子字符串?

  26. 26

    正则表达式匹配以使用angular的表达式开始和结束

  27. 27

    R-使用正则表达式删除所有字符串,特殊字符和模式结尾元素

  28. 28

    NOTEPAD ++正则表达式如何删除子字符串和之间的所有字符,

  29. 29

    正则表达式删除非字母数字字符和点后的所有字符?

热门标签

归档