aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--PySide/QtCore/typesystem_core.xml35
-rw-r--r--tests/QtCore/CMakeLists.txt1
-rw-r--r--tests/QtCore/qregexp_test.py20
3 files changed, 56 insertions, 0 deletions
diff --git a/PySide/QtCore/typesystem_core.xml b/PySide/QtCore/typesystem_core.xml
index 6da4f64c7..5ed694c1a 100644
--- a/PySide/QtCore/typesystem_core.xml
+++ b/PySide/QtCore/typesystem_core.xml
@@ -1390,6 +1390,41 @@
</insert-template>
</inject-code>
</add-function>
+ <add-function signature="replace(QString, QString)" return-type="QString">
+ <modify-argument index="1">
+ <rename to="sourceString"/>
+ </modify-argument>
+ <modify-argument index="2">
+ <rename to="after"/>
+ </modify-argument>
+ <inject-documentation format="target" mode="append">
+ Replaces every occurrence of the regular expression in *sourceString* with *after*.
+ Returns a new Python string with the modified contents. For example:
+
+ ::
+
+ s = "Banana"
+ re = QRegExp("a[mn]")
+ s = re.replace(s, "ox")
+ # s == "Boxoxa"
+
+
+ For regular expressions containing capturing parentheses, occurrences of \1, \2, ..., in *after*
+ are replaced with rx.cap(1), cap(2), ...
+
+ ::
+
+ t = "A &lt;i>bon mot&lt;/i>."
+ re = QRegExp("&lt;i>([^&lt;]*)&lt;/i>")
+ t = re.replace(t, "\\emph{\\1}")
+ # t == "A \\emph{bon mot}."
+
+ </inject-documentation>
+ <inject-code class="target" position="beginning">
+ %1.replace(*%CPPSELF, %2);
+ %PYARG_0 = %CONVERTTOPYTHON[QString](%1);
+ </inject-code>
+ </add-function>
</value-type>
<value-type name="QFileInfo">
<extra-includes>
diff --git a/tests/QtCore/CMakeLists.txt b/tests/QtCore/CMakeLists.txt
index b73a1ba24..40b83864d 100644
--- a/tests/QtCore/CMakeLists.txt
+++ b/tests/QtCore/CMakeLists.txt
@@ -49,6 +49,7 @@ PYSIDE_TEST(qobject_tr_as_instance_test.py)
PYSIDE_TEST(qpoint_test.py)
PYSIDE_TEST(qprocess_test.py)
PYSIDE_TEST(qrect_test.py)
+PYSIDE_TEST(qregexp_test.py)
PYSIDE_TEST(qresource_test.py)
PYSIDE_TEST(qsize_test.py)
PYSIDE_TEST(qslot_object_test.py)
diff --git a/tests/QtCore/qregexp_test.py b/tests/QtCore/qregexp_test.py
new file mode 100644
index 000000000..54991854a
--- /dev/null
+++ b/tests/QtCore/qregexp_test.py
@@ -0,0 +1,20 @@
+#!/usr/bin/python
+
+import unittest
+from PySide.QtCore import QRegExp
+
+class QRegExpTest(unittest.TestCase):
+
+ def testReplace1(self):
+ re = QRegExp('a[mn]')
+ string = re.replace('Banana', 'ox')
+ self.assertEqual(string, 'Boxoxa')
+
+ def testReplace2(self):
+ re = QRegExp('<i>([^<]*)</i>')
+ string = re.replace('A <i>bon mot</i>.', '\\emph{\\1}')
+ self.assertEqual(string, 'A \\emph{bon mot}.')
+
+if __name__ == '__main__':
+ unittest.main()
+