标签: replace

替换字符串中的反向引用语法(为什么是美元符号?)

在Java中,它似乎在少数其他语言,在模式的反向引用由一个反斜杠(如前面\1,\2,\3,等),但在替换字符串他们一个美元符号前面(例如$1,$2,$3,和也$0).

这是一个片段来说明:

System.out.println(
    "left-right".replaceAll("(.*)-(.*)", "\\2-\\1") // WRONG!!!
); // prints "2-1"

System.out.println(
    "left-right".replaceAll("(.*)-(.*)", "$2-$1")   // CORRECT!
); // prints "right-left"

System.out.println(
    "You want million dollar?!?".replaceAll("(\\w*) dollar", "US\\$ $1")
); // prints "You want US$ million?!?"

System.out.println(
    "You want million dollar?!?".replaceAll("(\\w*) dollar", "US$ \\1")
); // throws IllegalArgumentException: Illegal group reference
Run Code Online (Sandbox Code Playgroud)

问题:

  • $在Java中特有的替换字符串中使用反向引用是什么?如果没有,用什么语言开始呢?什么口味使用它,什么不使用?
  • 为什么这是个好主意?为什么不坚持使用相同的模式语法?这不会导致更具凝聚力和更容易学习的语言吗?
    • 如果上面的语句1和4是"正确的"而不是2和3,语法是否会更加简化?

java regex syntax backreference replace

47
推荐指数
2
解决办法
3万
查看次数

PHP从数字字符串中删除逗号

在PHP中,我有一个包含所有字符串的变量数组.存储的某些值是带逗号的数字字符串.

我需要的:

一种从字符串中修剪逗号的方法,只对数字字符串执行此操作.这并不像看起来那么简单.主要原因是以下失败:

$a = "1,435";

if(is_numeric($a))
    $a = str_replace(',', '', $a);
Run Code Online (Sandbox Code Playgroud)

这$a = "1435"是因为数字而失败.但$a = "1,435"不是数字.因为我得到的一些字符串将是带逗号的常规句子,所以我不能在每个字符串上运行字符串替换.

php string replace numbers comma

47
推荐指数
5
解决办法
11万
查看次数

如何在目录树中递归地查找和替换所有出现的字符串?

使用grep和sed,如何替换所有出现的:

a.example.com
Run Code Online (Sandbox Code Playgroud)

同

b.example.com
Run Code Online (Sandbox Code Playgroud)

在/home/user/目录树下的文本文件中,递归地查找并替换子目录中所有文件中的所有实例.

grep replace sed find

46
推荐指数
6
解决办法
9万
查看次数

如何将Pandas Data Frame中的负数替换为零

我想知道是否有一些用零替换所有DataFrame负数?

python replace pandas

46
推荐指数
5
解决办法
8万
查看次数

替换SQL Server中的单引号

我在SQL Server中使用此函数来替换单引号.

但是,当我插入单引号时,它会抛出一个错误Replace(@strip,''','')):

Create Function [dbo].[fn_stripsingleQuote]
    (@strStrip varchar(Max))
    returns varchar
as
begin
    declare @CleanString varchar(Max)
    SET @var=(Replace(@strip,'',''))

    return @var
end
Run Code Online (Sandbox Code Playgroud)

sql-server error-handling replace

45
推荐指数
4
解决办法
25万
查看次数

Android:无法将一个片段替换为另一个片段

我需要替换Fragment一个Activity与另一个Fragment,下面是层文件Activity:

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:id="@+id/home_layout_container">

    <fragment android:name="com.foo.FragA"
        android:id="@+id/home_list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

    </FrameLayout>
Run Code Online (Sandbox Code Playgroud)

所以默认情况下有FragA,现在我想在活动中用FragB替换它,我做了:

public void onRegionClicked(Region region) {
    RegionInfoFragment rif = RegionInfoFragment.newInstance(region);
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.replace(R.id.home_list, rif);
}
Run Code Online (Sandbox Code Playgroud)

但我得到了例外:

>6:24:40.685: ERROR/AndroidRuntime(9194): Uncaught handler: thread main exiting due to uncaught exception
05-06 16:24:40.692: ERROR/AndroidRuntime(9194): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
05-06 16:24:40.692: ERROR/AndroidRuntime(9194): …
Run Code Online (Sandbox Code Playgroud)

android replace android-fragments

45
推荐指数
2
解决办法
5万
查看次数

是否可以通过.replace替换字符串中的所有回车符?

是否可以用.replace函数替换字符串中的所有回车符?我发现了很多复杂的功能,但是想知道它是否可以通过正则表达式进行简化.replace?

谢谢!

javascript replace

45
推荐指数
2
解决办法
6万
查看次数

替换整个DataFrame中的字符串/值

我有一个非常大的数据集,我想用数字替换字符串.我想对数据集进行操作,而不为数据集中的每个键(列)键入映射函数.(类似于fillna方法,但用特定值替换特定字符串).反正有没有这样做?

这是我的数据集的一个例子

data
   resp          A          B          C
0     1       poor       poor       good
1     2       good       poor       good
2     3  very good  very good  very good
3     4       bad        poor       bad 
4     5   very bad   very bad   very bad
5     6       poor       good   very bad
6     7       good       good       good
7     8  very good  very good  very good
8     9       bad        bad    very bad
9    10   very bad   very bad   very bad
Run Code Online (Sandbox Code Playgroud)

期望的结果:

 data
   resp  A  B  C
0      1  3 …
Run Code Online (Sandbox Code Playgroud)

python replace dataframe pandas

45
推荐指数
2
解决办法
8万
查看次数

如何用Atom中的空格替换制表符?

当我开始使用Atom文本编辑器时,我使用了tab-indentation但是想要更改为4-space-indentation.

我有几个文件应该相应更新

最简单的方法是什么?

replace indentation atom-editor

45
推荐指数
2
解决办法
4万
查看次数

如何使用JSP和JSTL替换换行符?

我有一个传递到我的JSP页面的bean对象列表,其中一个是注释字段.此字段可能包含换行符,我想使用JSTL用分号替换它们,以便可以在文本输入中显示该字段.我找到了一个解决方案,但它不是很优雅.我将在下面发布一个可能性.

string jsp replace newline jstl

44
推荐指数
4
解决办法
10万
查看次数